import java.util.Scanner;

public class Test3 {
    //8.在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，还可以求3个小数的最大值？
    public static int max1(int a,int b) {
        return Math.max(a,b);
    }

    public static double max(double a,double b,double c) {

        double m = Math.max(a,b);
        return Math.max(m,c);
    }
    public static void main(String[] args) {
         int a = 7;
         int b = 3;
         int max1 = max1(a,b);
        System.out.println(max1);
        double m = 0.3;
        double n = 0.9;
        double h = 0.4;
        double max2 = max(m,n,h);
        System.out.println(max2);
    }
    //7.在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码，求出结果
    public static int sum(int a,int b) {
        return a+b;
    }

    public static double sum(double a,double b,double c) {
        return a+b+c;
    }
    public static void main7(String[] args) {
             int x = 2;
             int y = 3;
             int sum = sum(2,3);
             double m =0.2;
             double h = 0.5;
             double n = 0.39;
             double sum1 =sum(m,h,n);
        System.out.println(sum);
        System.out.println(sum1);

    }
    //6.求斐波那契数列的第n项。(迭代实现)
    public  static  int fib(int n){
        if (n == 1 || n == 2){
            return 1;
        }
        int f1 = 1;
        int f2 = 1;
        int f3 = 0;
        for(int i = 3;i <= n;i++){
            f3 = f1 + f2;
            f1 = f2;
            f2 = f3;
        }
        return  f3;
    }
    public static void main6(String[] args) {
        System.out.println(fib(1));
        System.out.println(fib(5));
        System.out.println(fib(6));
        System.out.println(fib(24));
    }

    /*5.创建方法求两个数的最大值max2，随后再写一个求3个数的最大值的函数max3。
     要求：在max3这个函数中，调用max2函数，来实现3个数的最大值计算*/
    public static int max(int a,int b) {
        return a > b ? a : b;
    }
    public static  int max(int a,int b,int c) {
        int maxNum = max(a, b);
        int ret = max(c,maxNum);
        return ret;
    }

    public static void main5(String[] args) {
        int x = 2;
        int y = 4;
        int z = 5;
        int num = max(x,y,z);
        System.out.println(num);
    }
    /*4.编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，提示“登录成功”,密码错误，
     可以重新输 入，最多输入三次。三次均错，则提示退出程序 */
    public static void main4(String[] args) {
        int count = 3;
        Scanner scanner = new Scanner(System.in);
        while(count != 0){
            System.out.println("请输入你的密码");
            String passWord = scanner.nextLine();
            if (passWord.equals("147258")) {
                System.out.println("登陆成功");
                return;//break
            }else{
                count --;
                System.out.println("你还有"+count+"次机会");
            }
        }
    }
    //3.输出一个整数的每一位，如：123的每一位是3，2，1
    public static void main3(String[] args) {
        int n = 123;
        while(n != 0){
            System.out.println(n % 10);// 3 2 1
            n /= 10;// 12 1 0
        }
    }
    //2.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值    。
    public static void main2(String[] args) {
        double sum = 0;
        int ret = 1;
        for (int i = 1; i <= 100; i++) {
            sum += 1.0/i * ret;
            ret = -ret;
        }
        System.out.println(sum);
    }
    //1.KiKi学习了循环，BoBo老师给他出了一系列打印图案的练习，该任务是打印用“*”组成的X形图案。
    //输入描述：
    //多组输入，一个整数（2~20），表示输出的行数，也表示组成“X”的反斜线和正斜线的长度。
    //输出描述：
    //针对每行输入，输出用“*”组成的X形图案。

        public static void main1(String[] args) {
            Scanner sc = new Scanner(System.in);
            while (sc.hasNextInt()) {
                int n = sc.nextInt();

                //外循环(相当于坐标x)：图形总共n行，我们就循环n次
                for (int i = 0; i < n; i++) {
                    //内循环(相当于坐标y)结合上一行来看就是第i行第j个
                    for (int j = 0; j < n; j++) {
                        //观察过坐标图不难发现*都处于【横纵坐标相等】或者【和等于n-1】时
                        if (i == j || (i + j) == n - 1) {
                            System.out.print("*");
                        } else {
                            System.out.print(" ");
                        }
                    }
                    //外循环完成一次，代表一行写完，此处换行进行下一次循环
                    System.out.println();
                }
            }
        }
}
